﻿using Padsurface.App.Tests.Unit.Stubs;
using Padsurface.App.ViewModels.Start;
using Padsurface.Tests;

namespace Padsurface.App.Tests.Unit.ViewModels.StartViewModelSpecifications
{
    public abstract class StartViewModelTestBase : TestBase
    {
        protected StartViewModel ViewModel { get; private set; }

        protected FilePickerStub FilePicker { get; private set; }
        protected SongLoaderStub SongLoader { get; private set; }
        protected ActiveSongCacheStub ActiveSongCache { get; private set; }
        protected RecentSongCacheStub RecentSongCache { get; private set; }

        protected override void Arrange()
        {
            FilePicker = new FilePickerStub();
            SongLoader = new SongLoaderStub();
            ActiveSongCache = new ActiveSongCacheStub();
            RecentSongCache = new RecentSongCacheStub();

            ViewModel = new StartViewModel(FilePicker, SongLoader, ActiveSongCache, RecentSongCache);
            ViewModel.NavigationService = new NavigationServiceStub();
        }
    }
}
